/**
 * 
 */
package co.edu.uniquindio.bean;

import java.util.List;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.persistence.Id;

import co.edu.uniquindio.ejb.BusquedaEjb;
import co.edu.uniquindio.ejb.ParametrizadaEjb;
import co.edu.uniquindio.logica.Color;

/**
 * @author Andres Felipe Abril
 * @author Luis Enrique Robledo
 * Esta clase representa un color bean
 */
@ManagedBean
public class ColorBean {

	
	/** este atributo representa una instancia de parametrizadaEjb  inyeccion de codigo	 **/
	@EJB
	private ParametrizadaEjb paramEjb;
	@EJB
	private BusquedaEjb busquedaEjb;
	/** este atributo representa la instancia de un color  **/
	private Color color= new Color();
	
	/**
	 * representa la llave primaria del color
	 */
	@Id
	private int codigo;
	/**
	 * este  atributo representa el nombre del color
	 */
	private String nombre;
	/**
	 * este metodo representa el R del estandar RGB  de un color
	 */
	private int R;
	/**
	 * este metodo representa el G del estandar RGB de un color
	 */
	private int G;
	/**
	 * este metodo representa el B del estandar RGB de un color
	 */
	private int B; 
	
	/**
	 * Este metodo permite obtener un color
	 * @return un color
	 */
	public Color getColor() {
		return color;
	}
	/**
	 * Este metodo permite modificar un color 
	 * @param color el color a modificar
	 */
	public void setColor(Color color) {
		this.color = color;
	}
	/**
	 * Este metodo permite obtener una lista de colores 
	 * @return
	 */
	public List<Color>getcolores()
	{
		List<Color>lista=busquedaEjb.obtenerColores();
		return lista;
	}
	
	/**
	 * Este metodo me permite obtener la informacion asociada a un color
	 * @return la informacion de el color
	 */
	public String seleccionarColor()
	{
	   System.out.println( "Color: "+ color.getNombre() +"R: "+ color.getR() +"    G: "+ color.getG() +"   B: "+ color.getB());
	   return null;
	}
	public String registrar() throws Exception
	{
		paramEjb.agregarColor(color);
		return "tablaColor.xhtml";
	}
	public String eliminar() throws Exception
	{
		paramEjb.eliminarColor(color.getCodigo());
		return "paginaConfirm.xhtml";
	}
	/**
	 * Este metodo permite
	 * @return the codigo
	 */
	public int getCodigo() {
		return codigo;
	}
	/**
	 * Este metodo permite 
	 * @param codigo el codigo a modificar
	 */
	public void setCodigo(int codigo) {
		this.codigo = codigo;
	}
	/**
	 * Este metodo permite
	 * @return the nombre
	 */
	public String getNombre() {
		return nombre;
	}
	/**
	 * Este metodo permite 
	 * @param nombre el nombre a modificar
	 */
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	/**
	 * Este metodo permite
	 * @return the r
	 */
	public int getR() {
		return R;
	}
	/**
	 * Este metodo permite 
	 * @param r el r a modificar
	 */
	public void setR(int r) {
		R = r;
	}
	/**
	 * Este metodo permite
	 * @return the g
	 */
	public int getG() {
		return G;
	}
	/**
	 * Este metodo permite 
	 * @param g el g a modificar
	 */
	public void setG(int g) {
		G = g;
	}
	/**
	 * Este metodo permite
	 * @return the b
	 */
	public int getB() {
		return B;
	}
	/**
	 * Este metodo permite 
	 * @param b el b a modificar
	 */
	public void setB(int b) {
		B = b;
	}
}
